import java.util.Arrays;

public class MyArraylist {
    public int[] elem;
    public int usedSize;
    private static final int DEFAULT_SIZE = 10;
    public MyArraylist() {
        this.elem = new int[DEFAULT_SIZE];
        this.usedSize = 0;
    }
    //打印顺序表
    public void disPlay() {
        System.out.println(Arrays.toString(elem));
    }
    //增加顺序表元素，尾部
    public void add(int date) {
        elem[usedSize++] = date;
    }
    //判断当前顺序表是否放满元素
    public boolean isFull() {
        if(usedSize == this.elem.length) {
            return true;
        }else {
            return false;
        }
    }
    //判断pos位置是否合法
    private boolean checkIndex(int pos) {
        if(pos >= elem.length || pos < usedSize) {
            System.out.println("位置非法");
            return false;
        }else {
            return true;
        }
    }
    //在pos位置增加元素(usedSize的后)
    public void add(int pos,int date) {
        //判断位置是否合法
        if(checkIndex(pos)) {
            elem[pos] = date;
            usedSize++;
        }
    }
    //查找有没有该数
    public boolean include(int toFind) {
        for (int i = 0; i < usedSize; i++) {
            if(toFind == elem[i]) {
                System.out.println("找到该数");
                return true;
            }
        }
        System.out.println("为找到该数");
        return false;
    }
    //查找该元素的下表
    public int indexOf(int toFind) {
        for (int i = 0; i < usedSize; i++) {
            if(toFind == elem[i]) {
                return i;
            }
        }
        return -1;
     }
     //给指定的位置更新值
    public void set(int pos,int value) {
        if(checkIndex(pos)) {
            elem[pos] = value;
        }
    }
    //删除第一次出现的数字key
    public void remove(int key) {
        if(include(key)) {
            int index = indexOf(key);
            for (int i = index; i < usedSize-1; i++) {
                elem[index] = elem[i+1];
            }
            usedSize--;
        }
    }
    //获取长度
    public int size() {
        return usedSize;
    }
    //清空列表
    public void clear() {
        usedSize = 0;
    }
}